package co.com.smart.persistence.entity.dto;

import java.io.Serializable;

import javax.persistence.*;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;


/**
 * The persistent class for the smart_institucion database table.
 * 
 */
@Entity
@Table(name="smart_institucion")
@NamedQuery(name="SmartInstitucion.findAll", query="SELECT s FROM SmartInstitucion s")
public class SmartInstitucion implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@Column(name="sm_scinstitucion")
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	private BigDecimal smScinstitucion;

	@Column(name="sm_coinstitucion")
	private String smCoinstitucion;

	@Column(name="sm_cousuario")
	private String smCousuario;

	@Column(name="sm_dsinstitucion")
	private String smDsinstitucion;

	@Temporal(TemporalType.DATE)
	@Column(name="sm_fhingreso")
	private Date smFhingreso;

	@Temporal(TemporalType.DATE)
	@Column(name="sm_fhmodificacion")
	private Date smFhmodificacion;

	@Temporal(TemporalType.DATE)
	@Column(name="sm_fhretiro")
	private Date smFhretiro;

	//bi-directional many-to-one association to SmartSede
	@OneToMany(cascade = CascadeType.ALL,mappedBy="smartInstitucion", fetch = FetchType.LAZY)
	private List<SmartSede> smartSedes;

	public SmartInstitucion() {
	}

	public BigDecimal getSmScinstitucion() {
		return this.smScinstitucion;
	}

	public void setSmScinstitucion(BigDecimal smScinstitucion) {
		this.smScinstitucion = smScinstitucion;
	}

	public String getSmCoinstitucion() {
		return this.smCoinstitucion;
	}

	public void setSmCoinstitucion(String smCoinstitucion) {
		this.smCoinstitucion = smCoinstitucion;
	}

	public String getSmCousuario() {
		return this.smCousuario;
	}

	public void setSmCousuario(String smCousuario) {
		this.smCousuario = smCousuario;
	}

	public String getSmDsinstitucion() {
		return this.smDsinstitucion;
	}

	public void setSmDsinstitucion(String smDsinstitucion) {
		this.smDsinstitucion = smDsinstitucion;
	}

	public Date getSmFhingreso() {
		return this.smFhingreso;
	}

	public void setSmFhingreso(Date smFhingreso) {
		this.smFhingreso = smFhingreso;
	}

	public Date getSmFhmodificacion() {
		return this.smFhmodificacion;
	}

	public void setSmFhmodificacion(Date smFhmodificacion) {
		this.smFhmodificacion = smFhmodificacion;
	}

	public Date getSmFhretiro() {
		return this.smFhretiro;
	}

	public void setSmFhretiro(Date smFhretiro) {
		this.smFhretiro = smFhretiro;
	}

	public List<SmartSede> getSmartSedes() {
		return this.smartSedes;
	}

	public void setSmartSedes(List<SmartSede> smartSedes) {
		this.smartSedes = smartSedes;
	}

	public SmartSede addSmartSede(SmartSede smartSede) {
		getSmartSedes().add(smartSede);
		smartSede.setSmartInstitucion(this);

		return smartSede;
	}

	public SmartSede removeSmartSede(SmartSede smartSede) {
		getSmartSedes().remove(smartSede);
		smartSede.setSmartInstitucion(null);

		return smartSede;
	}

}